namespace Calais
{
    [CalaisType("http://s.opencalais.com/1/type/cat/DocCat")]
    [CalaisTypeDescription("The type of an extracted content category/topic")]
    public class CalaisDocCat : ICalaisDocCat
    {
        public string Category { get; set; }
        public string CategoryName { get; set; }
        public string ClassifierName { get; set; }
        public ICalaisDocInfo DocId { get; set; }
        public string Score { get; set; }
    }

    [CalaisType("http://s.opencalais.com/1/type/sys/DocInfo")]
    [CalaisTypeDescription("The type of the node that includes the tentire transaction: paramsXML and the submitted content")]
    public class CalaisDocInfo : ICalaisDocInfo
    {
        public string AllowDistribution { get; set; }
        public string AllowSearch { get; set; }
        public string CalaisRequestId { get; set; }
        public string CalculateRelevanceScore { get; set; }
        public string Caller { get; set; }
        public string DiscardMetadata { get; set; }
        public string DocDate { get; set; }
        public string DocTitle { get; set; }
        public string Document { get; set; }
        public string EnableMetadataType { get; set; }
        public string ExternalId { get; set; }
        public string ExternalMetadata { get; set; }
        public string Id { get; set; }
        public string OutputFormat { get; set; }
        public string ReltagBaseUrl { get; set; }
        public string Submitter { get; set; }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/Anniversary")]
    [CalaisTypeDescription("Describes an entity that is a reference to an anniversary")]
    public class CalaisAnniversary : CalaisCustomTypeBase, ICalaisAnniversary
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/City")]
    [CalaisTypeDescription("Describes an entity that is a city, village or settlement")]
    public class CalaisCity : CalaisCustomTypeBase, ICalaisCity
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/Company")]
    [CalaisTypeDescription("The type of an extracted company name")]
    public class CalaisCompany : CalaisCustomTypeBase, ICalaisCompany
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
        public string Nationality
        {
            get
            {
                return base.Nationality;
            }

            set
            {
                base.Nationality = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/Continent")]
    [CalaisTypeDescription("The type of an extracted continent name")]
    public class CalaisContinent : CalaisCustomTypeBase, ICalaisContinent
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/Country")]
    [CalaisTypeDescription("The type of an extracted country name")]
    public class CalaisCountry : CalaisCustomTypeBase, ICalaisCountry
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/Currency")]
    [CalaisTypeDescription("The type of an extracted currency")]
    public class CalaisCurrency : CalaisCustomTypeBase, ICalaisCurrency
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/EmailAddress")]
    [CalaisTypeDescription("The type of an extracted email address")]
    public class CalaisEmailAddress : CalaisCustomTypeBase, ICalaisEmailAddress
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/EntertainmentAwardEvent")]
    [CalaisTypeDescription("The type of an extracted entertainment-related event or award")]
    public class CalaisEntertainmentAwardEvent : CalaisCustomTypeBase, ICalaisEntertainmentAwardEvent
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/Facility")]
    [CalaisTypeDescription("The type of an extracted facility - a man-made physical entity")]
    public class CalaisFacility : CalaisCustomTypeBase, ICalaisFacility
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/FaxNumber")]
    [CalaisTypeDescription("The type of an extracted fax number")]
    public class CalaisFaxNumber : CalaisCustomTypeBase, ICalaisFaxNumber
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/Holiday")]
    [CalaisTypeDescription("The type of an extracted holiday")]
    public class CalaisHolIday : CalaisCustomTypeBase, ICalaisHolIday
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/IndustryTerm")]
    [CalaisTypeDescription("The type of an extracted industry term")]
    public class CalaisIndustryTerm : CalaisCustomTypeBase, ICalaisIndustryTerm
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/MarketIndex")]
    [CalaisTypeDescription("The type of an extracted market index")]
    public class CalaisMarketIndex : CalaisCustomTypeBase, ICalaisMarketIndex
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/MedicalCondition")]
    [CalaisTypeDescription("The type of an extracted medical condition")]
    public class CalaisMedicalCondition : CalaisCustomTypeBase, ICalaisMedicalCondition
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/MedicalTreatment")]
    [CalaisTypeDescription("The type of an extracted medical treatment")]
    public class CalaisMedicalTreatment : CalaisCustomTypeBase, ICalaisMedicalTreatment
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/Movie")]
    [CalaisTypeDescription("The type of an extracted movie name")]
    public class CalaisMovie : CalaisCustomTypeBase, ICalaisMovie
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/MusicAlbum")]
    [CalaisTypeDescription("The type of an extracted music album name")]
    public class CalaisMusicAlbum : CalaisCustomTypeBase, ICalaisMusicAlbum
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/MusicGroup")]
    [CalaisTypeDescription("The type of an extracted music group name")]
    public class CalaisMusicGroup : CalaisCustomTypeBase, ICalaisMusicGroup
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/NaturalFeature")]
    [CalaisTypeDescription("The type of an extracted natural feature")]
    public class CalaisNaturalFeature : CalaisCustomTypeBase, ICalaisNaturalFeature
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/OperatingSystem")]
    [CalaisTypeDescription("The type of an extracted operating system name")]
    public class CalaisOperatingSystem : CalaisCustomTypeBase, ICalaisOperatingSystem
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/Organization")]
    [CalaisTypeDescription("The type of an extracted organization name")]
    public class CalaisOrganization : CalaisCustomTypeBase, ICalaisOrganization
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
        public string Nationality
        {
            get
            {
                return base.Nationality;
            }

            set
            {
                base.Nationality = value;
            }
        }
        public string OrganizationType
        {
            get
            {
                return base.OrganizationType;
            }

            set
            {
                base.OrganizationType = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/Person")]
    [CalaisTypeDescription("The type of an extracted person name")]
    public class CalaisPerson : CalaisCustomTypeBase, ICalaisPerson
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
        public string Nationality
        {
            get
            {
                return base.Nationality;
            }

            set
            {
                base.Nationality = value;
            }
        }
        public string PersonType
        {
            get
            {
                return base.PersonType;
            }

            set
            {
                base.PersonType = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/PhoneNumber")]
    [CalaisTypeDescription("The type of an extracted phone number")]
    public class CalaisPhoneNumber : CalaisCustomTypeBase, ICalaisPhoneNumber
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/Position")]
    [CalaisTypeDescription("The type of an extracted person's position or job title")]
    public class CalaisPosition : CalaisCustomTypeBase, ICalaisPosition
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/Product")]
    [CalaisTypeDescription("The type of an extracted product name (drug, car models, electronics, etc.)")]
    public class CalaisProduct : CalaisCustomTypeBase, ICalaisProduct
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
        public string ProductType
        {
            get
            {
                return base.ProductType;
            }

            set
            {
                base.ProductType = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/ProgrammingLanguage")]
    [CalaisTypeDescription("The type of an extracted programming language")]
    public class CalaisProgrammingLanguage : CalaisCustomTypeBase, ICalaisProgrammingLanguage
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/ProvinceOrState")]
    [CalaisTypeDescription("The type of an extracted province, state or county name")]
    public class CalaisProvinceOrState : CalaisCustomTypeBase, ICalaisProvinceOrState
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/PublishedMedium")]
    [CalaisTypeDescription("The type of an extracted published medium - newspapers, magazines, etc.")]
    public class CalaisPublishedMedium : CalaisCustomTypeBase, ICalaisPublishedMedium
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/RadioProgram")]
    [CalaisTypeDescription("The type of an extracted radio program")]
    public class CalaisRadioProgram : CalaisCustomTypeBase, ICalaisRadioProgram
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/RadioStation")]
    [CalaisTypeDescription("The type of an extracted radio station")]
    public class CalaisRadioStation : CalaisCustomTypeBase, ICalaisRadioStation
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/Region")]
    [CalaisTypeDescription("The type of an extracted region")]
    public class CalaisRegion : CalaisCustomTypeBase, ICalaisRegion
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/SportsEvent")]
    [CalaisTypeDescription("The type of an extracted sports event")]
    public class CalaisSportsEvent : CalaisCustomTypeBase, ICalaisSportsEvent
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/SportsGame")]
    [CalaisTypeDescription("The type of an extracted sports game")]
    public class CalaisSportsGame : CalaisCustomTypeBase, ICalaisSportsGame
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/SportsLeague")]
    [CalaisTypeDescription("The type of an extracted sports league")]
    public class CalaisSportsLeague : CalaisCustomTypeBase, ICalaisSportsLeague
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/TVShow")]
    [CalaisTypeDescription("The type of an extracted TV show")]
    public class CalaisTVShow : CalaisCustomTypeBase, ICalaisTVShow
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/TVStation")]
    [CalaisTypeDescription("The type of an extracted TV station")]
    public class CalaisTVStation : CalaisCustomTypeBase, ICalaisTVStation
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/Technology")]
    [CalaisTypeDescription("The type of an extracted technology name")]
    public class CalaisTechnology : CalaisCustomTypeBase, ICalaisTechnology
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/e/URL")]
    [CalaisTypeDescription("The type of an extracted URL mention")]
    public class CalaisURL : CalaisCustomTypeBase, ICalaisURL
    {
        public string Name
        {
            get
            {
                return base.Name;
            }

            set
            {
                base.Name = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/Acquisition")]
    [CalaisTypeDescription("The type of an extracted acquisition relation between multiple companies")]
    public class CalaisAcquisition : CalaisCustomTypeBase, ICalaisAcquisition
    {
        public ICalaisCompany Company_Acquirer
        {
            get
            {
                return base.Company_Acquirer;
            }

            set
            {
                base.Company_Acquirer = value;
            }
        }
        public ICalaisCompany Company_Beingacquired
        {
            get
            {
                return base.Company_Beingacquired;
            }

            set
            {
                base.Company_Beingacquired = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/Alliance")]
    [CalaisTypeDescription("The type of an extracted alliance relation between multiple companies")]
    public class CalaisAlliance : CalaisCustomTypeBase, ICalaisAlliance
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/AnalystEarningsEstimate")]
    [CalaisTypeDescription("The type of an extracted analyst earnings estimate mentioned - estimates given by exgternal analysts regarding the forecasted earnings of companies")]
    public class CalaisAnalystEarningsEstimate : CalaisCustomTypeBase, ICalaisAnalystEarningsEstimate
    {
        public ICalaisCompany Company_Rated
        {
            get
            {
                return base.Company_Rated;
            }

            set
            {
                base.Company_Rated = value;
            }
        }
        public ICalaisCompany Company_Source
        {
            get
            {
                return base.Company_Source;
            }

            set
            {
                base.Company_Source = value;
            }
        }
        public string FinancialMetric
        {
            get
            {
                return base.FinancialMetric;
            }

            set
            {
                base.FinancialMetric = value;
            }
        }
        public ICalaisPerson Person_Source
        {
            get
            {
                return base.Person_Source;
            }

            set
            {
                base.Person_Source = value;
            }
        }
        public string Quarter
        {
            get
            {
                return base.Quarter;
            }

            set
            {
                base.Quarter = value;
            }
        }
        public string Year
        {
            get
            {
                return base.Year;
            }

            set
            {
                base.Year = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/AnalystRecommendation")]
    [CalaisTypeDescription("The type of an extracted stock recommendation mentioned - recommendation given by external analysts regarding the company's equity")]
    public class CalaisAnalystRecommendation : CalaisCustomTypeBase, ICalaisAnalystRecommendation
    {
        public ICalaisCompany Company_Rated
        {
            get
            {
                return base.Company_Rated;
            }

            set
            {
                base.Company_Rated = value;
            }
        }
        public ICalaisCompany Company_Source
        {
            get
            {
                return base.Company_Source;
            }

            set
            {
                base.Company_Source = value;
            }
        }
        public string FinancialTrend
        {
            get
            {
                return base.FinancialTrend;
            }

            set
            {
                base.FinancialTrend = value;
            }
        }
        public ICalaisPerson Person_Source
        {
            get
            {
                return base.Person_Source;
            }

            set
            {
                base.Person_Source = value;
            }
        }
        public string Price_New
        {
            get
            {
                return base.Price_New;
            }

            set
            {
                base.Price_New = value;
            }
        }
        public string Price_Old
        {
            get
            {
                return base.Price_Old;
            }

            set
            {
                base.Price_Old = value;
            }
        }
        public string Rank_New
        {
            get
            {
                return base.Rank_New;
            }

            set
            {
                base.Rank_New = value;
            }
        }
        public string Rank_Old
        {
            get
            {
                return base.Rank_Old;
            }

            set
            {
                base.Rank_Old = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/Arrest")]
    [CalaisTypeDescription("The type of an extracted arrest event")]
    public class CalaisArrest : CalaisCustomTypeBase, ICalaisArrest
    {
        public string Charge
        {
            get
            {
                return base.Charge;
            }

            set
            {
                base.Charge = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public string OtherCharges
        {
            get
            {
                return base.OtherCharges;
            }

            set
            {
                base.OtherCharges = value;
            }
        }
        public ICalaisPerson Person
        {
            get
            {
                return base.Person;
            }

            set
            {
                base.Person = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/Bankruptcy")]
    [CalaisTypeDescription("The type of an extracted company's bankruptcy mention")]
    public class CalaisBankruptcy : CalaisCustomTypeBase, ICalaisBankruptcy
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/BonusSharesIssuance")]
    [CalaisTypeDescription("The type of an extracted bonus shares issuance")]
    public class CalaisBonusSharesIssuance : CalaisCustomTypeBase, ICalaisBonusSharesIssuance
    {
        public string BonusSharesRatio
        {
            get
            {
                return base.BonusSharesRatio;
            }

            set
            {
                base.BonusSharesRatio = value;
            }
        }
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/BusinessRelation")]
    [CalaisTypeDescription("The type of an extracted business relation mentioned between multiple companies")]
    public class CalaisBusinessRelation : CalaisCustomTypeBase, ICalaisBusinessRelation
    {
        public string BusinessRelationType
        {
            get
            {
                return base.BusinessRelationType;
            }

            set
            {
                base.BusinessRelationType = value;
            }
        }
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/Buybacks")]
    [CalaisTypeDescription("The type of an extracted buyback event")]
    public class CalaisBuybacks : CalaisCustomTypeBase, ICalaisBuybacks
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/CompanyAffiliates")]
    [CalaisTypeDescription("The type of an extracted parent-subsidiary relation between two companies")]
    public class CalaisCompanyAffiliates : CalaisCustomTypeBase, ICalaisCompanyAffiliates
    {
        public string AffiliateRelationType
        {
            get
            {
                return base.AffiliateRelationType;
            }

            set
            {
                base.AffiliateRelationType = value;
            }
        }
        public ICalaisCompany Company_Affiliate
        {
            get
            {
                return base.Company_Affiliate;
            }

            set
            {
                base.Company_Affiliate = value;
            }
        }
        public ICalaisCompany Company_Parent
        {
            get
            {
                return base.Company_Parent;
            }

            set
            {
                base.Company_Parent = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/CompanyCompetitor")]
    [CalaisTypeDescription("The type of an extracted competition relation between two companies")]
    public class CalaisCompanyCompetitor : CalaisCustomTypeBase, ICalaisCompanyCompetitor
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/CompanyCustomer")]
    [CalaisTypeDescription("The type of an extracted supplier-customer relation between two companies")]
    public class CalaisCompanyCustomer : CalaisCustomTypeBase, ICalaisCompanyCustomer
    {
        public ICalaisCompany Company_Customer
        {
            get
            {
                return base.Company_Customer;
            }

            set
            {
                base.Company_Customer = value;
            }
        }
        public ICalaisCompany Company_ProvIder
        {
            get
            {
                return base.Company_ProvIder;
            }

            set
            {
                base.Company_ProvIder = value;
            }
        }
        public ICalaisOrganization Organization_Customer
        {
            get
            {
                return base.Organization_Customer;
            }

            set
            {
                base.Organization_Customer = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/CompanyEarningsAnnouncement")]
    [CalaisTypeDescription("The type of an extracted earnings announcement event made by companies")]
    public class CalaisCompanyEarningsAnnouncement : CalaisCustomTypeBase, ICalaisCompanyEarningsAnnouncement
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string FinancialMetric
        {
            get
            {
                return base.FinancialMetric;
            }

            set
            {
                base.FinancialMetric = value;
            }
        }
        public string Quarter
        {
            get
            {
                return base.Quarter;
            }

            set
            {
                base.Quarter = value;
            }
        }
        public string Year
        {
            get
            {
                return base.Year;
            }

            set
            {
                base.Year = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/CompanyEarningsGuidance")]
    [CalaisTypeDescription("The type of an extracted earnings forecast/guidance event made by companies")]
    public class CalaisCompanyEarningsGuIdance : CalaisCustomTypeBase, ICalaisCompanyEarningsGuIdance
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string FinancialMetric
        {
            get
            {
                return base.FinancialMetric;
            }

            set
            {
                base.FinancialMetric = value;
            }
        }
        public string FinancialTrend
        {
            get
            {
                return base.FinancialTrend;
            }

            set
            {
                base.FinancialTrend = value;
            }
        }
        public string Quarter
        {
            get
            {
                return base.Quarter;
            }

            set
            {
                base.Quarter = value;
            }
        }
        public string Year
        {
            get
            {
                return base.Year;
            }

            set
            {
                base.Year = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/CompanyEmployeesNumber")]
    [CalaisTypeDescription("The type of an extracted mention of the number of employees in a company")]
    public class CalaisCompanyEmployeesNumber : CalaisCustomTypeBase, ICalaisCompanyEmployeesNumber
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string Employeesnumber
        {
            get
            {
                return base.Employeesnumber;
            }

            set
            {
                base.Employeesnumber = value;
            }
        }
        public ICalaisCustomLocation Location
        {
            get
            {
                return base.Location;
            }

            set
            {
                base.Location = value;
            }
        }
        public string Unit
        {
            get
            {
                return base.Unit;
            }

            set
            {
                base.Unit = value;
            }
        }
    }

    [CalaisTypeDescription("Custom composite type for [Location]")]
    [CalaisType("http://calaisdotnet.codeplex.com/types/CalaisCustomLocation")]
    public class CalaisCustomLocation : ICalaisCustomLocation
    {
        public string Name { get; set; }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/CompanyExpansion")]
    [CalaisTypeDescription("The type of an extracted event of company expansion")]
    public class CalaisCompanyExpansion : CalaisCustomTypeBase, ICalaisCompanyExpansion
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public string ExpansionType
        {
            get
            {
                return base.ExpansionType;
            }

            set
            {
                base.ExpansionType = value;
            }
        }
        public ICalaisCustomLocation Location
        {
            get
            {
                return base.Location;
            }

            set
            {
                base.Location = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/CompanyFounded")]
    [CalaisTypeDescription("The type of an extracted mention of the founding year of a company")]
    public class CalaisCompanyFounded : CalaisCustomTypeBase, ICalaisCompanyFounded
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string Year
        {
            get
            {
                return base.Year;
            }

            set
            {
                base.Year = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/CompanyInvestment")]
    [CalaisTypeDescription("The type of an extracted company investment/funding mention")]
    public class CalaisCompanyInvestment : CalaisCustomTypeBase, ICalaisCompanyInvestment
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public ICalaisCompany Company_Investor
        {
            get
            {
                return base.Company_Investor;
            }

            set
            {
                base.Company_Investor = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/CompanyLegalIssues")]
    [CalaisTypeDescription("The type of an extracted legal issue involving a company")]
    public class CalaisCompanyLegalIssues : CalaisCustomTypeBase, ICalaisCompanyLegalIssues
    {
        public ICalaisCompany Company_Plaintiff
        {
            get
            {
                return base.Company_Plaintiff;
            }

            set
            {
                base.Company_Plaintiff = value;
            }
        }
        public ICalaisCompany Company_Sued
        {
            get
            {
                return base.Company_Sued;
            }

            set
            {
                base.Company_Sued = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public string LawsuitClass
        {
            get
            {
                return base.LawsuitClass;
            }

            set
            {
                base.LawsuitClass = value;
            }
        }
        public ICalaisPerson Person_Plaintiff
        {
            get
            {
                return base.Person_Plaintiff;
            }

            set
            {
                base.Person_Plaintiff = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
        public string SuedDescription
        {
            get
            {
                return base.SuedDescription;
            }

            set
            {
                base.SuedDescription = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/CompanyLocation")]
    [CalaisTypeDescription("The type of an extracted information about company's location")]
    public class CalaisCompanyLocation : CalaisCustomTypeBase, ICalaisCompanyLocation
    {
        public ICalaisCity City
        {
            get
            {
                return base.City;
            }

            set
            {
                base.City = value;
            }
        }
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string CompanyLocationType
        {
            get
            {
                return base.CompanyLocationType;
            }

            set
            {
                base.CompanyLocationType = value;
            }
        }
        public ICalaisCountry Country
        {
            get
            {
                return base.Country;
            }

            set
            {
                base.Country = value;
            }
        }
        public ICalaisProvinceOrState ProvinceOrState
        {
            get
            {
                return base.ProvinceOrState;
            }

            set
            {
                base.ProvinceOrState = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/CompanyMeeting")]
    [CalaisTypeDescription("The type of an extracted announcement of meetings (e.g., AGM, EGM) initiated by companies")]
    public class CalaisCompanyMeeting : CalaisCustomTypeBase, ICalaisCompanyMeeting
    {
        public ICalaisCity City
        {
            get
            {
                return base.City;
            }

            set
            {
                base.City = value;
            }
        }
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string CompanyMeetingType
        {
            get
            {
                return base.CompanyMeetingType;
            }

            set
            {
                base.CompanyMeetingType = value;
            }
        }
        public ICalaisCountry Country
        {
            get
            {
                return base.Country;
            }

            set
            {
                base.Country = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public ICalaisFacility Facility
        {
            get
            {
                return base.Facility;
            }

            set
            {
                base.Facility = value;
            }
        }
        public ICalaisProvinceOrState ProvinceOrState
        {
            get
            {
                return base.ProvinceOrState;
            }

            set
            {
                base.ProvinceOrState = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/CompanyNameChange")]
    [CalaisTypeDescription("The type of an extracted event of company changing its name")]
    public class CalaisCompanyNameChange : CalaisCustomTypeBase, ICalaisCompanyNameChange
    {
        public ICalaisCompany Company_FormerName
        {
            get
            {
                return base.Company_FormerName;
            }

            set
            {
                base.Company_FormerName = value;
            }
        }
        public ICalaisCompany Company_NewName
        {
            get
            {
                return base.Company_NewName;
            }

            set
            {
                base.Company_NewName = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
        public string StockExchange
        {
            get
            {
                return base.StockExchange;
            }

            set
            {
                base.StockExchange = value;
            }
        }
        public string Ticker
        {
            get
            {
                return base.Ticker;
            }

            set
            {
                base.Ticker = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/CompanyProduct")]
    [CalaisTypeDescription("The type of an extracted mention of a product offered by a company")]
    public class CalaisCompanyProduct : CalaisCustomTypeBase, ICalaisCompanyProduct
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public ICalaisProduct Product
        {
            get
            {
                return base.Product;
            }

            set
            {
                base.Product = value;
            }
        }
        public string ProductType
        {
            get
            {
                return base.ProductType;
            }

            set
            {
                base.ProductType = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/CompanyReorganization")]
    [CalaisTypeDescription("The type of an extracted mention of reorganization/restructuring of companies")]
    public class CalaisCompanyReOrganization : CalaisCustomTypeBase, ICalaisCompanyReOrganization
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/CompanyTechnology")]
    [CalaisTypeDescription("The type of an extracted mention of a technology offered by a company")]
    public class CalaisCompanyTechnology : CalaisCustomTypeBase, ICalaisCompanyTechnology
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public ICalaisTechnology Technology
        {
            get
            {
                return base.Technology;
            }

            set
            {
                base.Technology = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/CompanyTicker")]
    [CalaisTypeDescription("The type of an extracted mention of company's ticker and stock exchange where it's traded")]
    public class CalaisCompanyTicker : CalaisCustomTypeBase, ICalaisCompanyTicker
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string StockExchange
        {
            get
            {
                return base.StockExchange;
            }

            set
            {
                base.StockExchange = value;
            }
        }
        public string Ticker
        {
            get
            {
                return base.Ticker;
            }

            set
            {
                base.Ticker = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/ConferenceCall")]
    [CalaisTypeDescription("The type of an extracted announcement of a conference call initiated by companies to review financial results")]
    public class CalaisConferenceCall : CalaisCustomTypeBase, ICalaisConferenceCall
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string ConferencecallType
        {
            get
            {
                return base.ConferencecallType;
            }

            set
            {
                base.ConferencecallType = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public string Quarter
        {
            get
            {
                return base.Quarter;
            }

            set
            {
                base.Quarter = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/Conviction")]
    [CalaisTypeDescription("The type of an extracted conviction event")]
    public class CalaisConviction : CalaisCustomTypeBase, ICalaisConviction
    {
        public string Charge
        {
            get
            {
                return base.Charge;
            }

            set
            {
                base.Charge = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public string OtherCharges
        {
            get
            {
                return base.OtherCharges;
            }

            set
            {
                base.OtherCharges = value;
            }
        }
        public ICalaisPerson Person
        {
            get
            {
                return base.Person;
            }

            set
            {
                base.Person = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/CreditRating")]
    [CalaisTypeDescription("The type of an extracted mention of rating the credit of companies or organizations")]
    public class CalaisCreditRating : CalaisCustomTypeBase, ICalaisCreditRating
    {
        public ICalaisCompany Company_Rated
        {
            get
            {
                return base.Company_Rated;
            }

            set
            {
                base.Company_Rated = value;
            }
        }
        public ICalaisCompany Company_Source
        {
            get
            {
                return base.Company_Source;
            }

            set
            {
                base.Company_Source = value;
            }
        }
        public string FinancialTrend
        {
            get
            {
                return base.FinancialTrend;
            }

            set
            {
                base.FinancialTrend = value;
            }
        }
        public ICalaisOrganization Organization_Rated
        {
            get
            {
                return base.Organization_Rated;
            }

            set
            {
                base.Organization_Rated = value;
            }
        }
        public string Rank_New
        {
            get
            {
                return base.Rank_New;
            }

            set
            {
                base.Rank_New = value;
            }
        }
        public string Rank_Old
        {
            get
            {
                return base.Rank_Old;
            }

            set
            {
                base.Rank_Old = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/EmploymentChange")]
    [CalaisTypeDescription("The type of an extracted mention of change of employment relative to people, companies or organizations")]
    public class CalaisEmploymentChange : CalaisCustomTypeBase, ICalaisEmploymentChange
    {
        public string ChangeType
        {
            get
            {
                return base.ChangeType;
            }

            set
            {
                base.ChangeType = value;
            }
        }
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public ICalaisOrganization Organization
        {
            get
            {
                return base.Organization;
            }

            set
            {
                base.Organization = value;
            }
        }
        public ICalaisPerson Person
        {
            get
            {
                return base.Person;
            }

            set
            {
                base.Person = value;
            }
        }
        public ICalaisPosition Position
        {
            get
            {
                return base.Position;
            }

            set
            {
                base.Position = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/EmploymentRelation")]
    [CalaisTypeDescription("The type of an extracted relation between an employer person to an employee person")]
    public class CalaisEmploymentRelation : CalaisCustomTypeBase, ICalaisEmploymentRelation
    {
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public ICalaisPerson Person_Employee
        {
            get
            {
                return base.Person_Employee;
            }

            set
            {
                base.Person_Employee = value;
            }
        }
        public ICalaisPerson Person_Employer
        {
            get
            {
                return base.Person_Employer;
            }

            set
            {
                base.Person_Employer = value;
            }
        }
        public ICalaisPosition Position
        {
            get
            {
                return base.Position;
            }

            set
            {
                base.Position = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/EnvironmentalIssue")]
    [CalaisTypeDescription("The type of an extracted mention of various environmental issues")]
    public class CalaisEnvironmentalIssue : CalaisCustomTypeBase, ICalaisEnvironmentalIssue
    {
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public string Environmentalissue
        {
            get
            {
                return base.Environmentalissue;
            }

            set
            {
                base.Environmentalissue = value;
            }
        }
        public ICalaisCustomLocation Location
        {
            get
            {
                return base.Location;
            }

            set
            {
                base.Location = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/Extinction")]
    [CalaisTypeDescription("The type of an extracted mention of species extinction")]
    public class CalaisExtinction : CalaisCustomTypeBase, ICalaisExtinction
    {
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public ICalaisCustomLocation Location
        {
            get
            {
                return base.Location;
            }

            set
            {
                base.Location = value;
            }
        }
        public string Species
        {
            get
            {
                return base.Species;
            }

            set
            {
                base.Species = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/FDAPhase")]
    [CalaisTypeDescription("The type of an extracted mention of a drug's phase in the US FDA's approval process")]
    public class CalaisFDAPhase : CalaisCustomTypeBase, ICalaisFDAPhase
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string Fdastage
        {
            get
            {
                return base.Fdastage;
            }

            set
            {
                base.Fdastage = value;
            }
        }
        public ICalaisProduct Product
        {
            get
            {
                return base.Product;
            }

            set
            {
                base.Product = value;
            }
        }
        public string ProductType
        {
            get
            {
                return base.ProductType;
            }

            set
            {
                base.ProductType = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/FamilyRelation")]
    [CalaisTypeDescription("The type of an extracted mention of family relation such as husband-wife, parent-child, etc.")]
    public class CalaisFamilyRelation : CalaisCustomTypeBase, ICalaisFamilyRelation
    {
        public string FamilyRelationType
        {
            get
            {
                return base.FamilyRelationType;
            }

            set
            {
                base.FamilyRelationType = value;
            }
        }
        public ICalaisPerson Person
        {
            get
            {
                return base.Person;
            }

            set
            {
                base.Person = value;
            }
        }
        public ICalaisPerson Person_Relative
        {
            get
            {
                return base.Person_Relative;
            }

            set
            {
                base.Person_Relative = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/GenericRelations")]
    [CalaisTypeDescription("The type of an extracted relation of the form: Subject - Verb / Predicate - Object")]
    public class CalaisGenericRelations : CalaisCustomTypeBase, ICalaisGenericRelations
    {
        public ICalaisCustomRelationObject RelationObject
        {
            get
            {
                return base.RelationObject;
            }

            set
            {
                base.RelationObject = value;
            }
        }
        public ICalaisCustomRelationSubject RelationSubject
        {
            get
            {
                return base.RelationSubject;
            }

            set
            {
                base.RelationSubject = value;
            }
        }
        public string Verb
        {
            get
            {
                return base.Verb;
            }

            set
            {
                base.Verb = value;
            }
        }
    }

    [CalaisTypeDescription("Custom composite type for [RelationObject]")]
    [CalaisType("http://calaisdotnet.codeplex.com/types/CalaisCustomRelationObject")]
    public class CalaisCustomRelationObject : ICalaisCustomRelationObject
    {
        public string Name { get; set; }
        public string Nationality { get; set; }
        public string OrganizationType { get; set; }
        public string PersonType { get; set; }
        public string ProductType { get; set; }
    }

    [CalaisTypeDescription("Custom composite type for [RelationSubject]")]
    [CalaisType("http://calaisdotnet.codeplex.com/types/CalaisCustomRelationSubject")]
    public class CalaisCustomRelationSubject : ICalaisCustomRelationSubject
    {
        public string Name { get; set; }
        public string Nationality { get; set; }
        public string OrganizationType { get; set; }
        public string PersonType { get; set; }
        public string ProductType { get; set; }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/IPO")]
    [CalaisTypeDescription("The type of an extracted mention of company's initial public offering")]
    public class CalaisIPO : CalaisCustomTypeBase, ICalaisIPO
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/Indictment")]
    [CalaisTypeDescription("The type of an extracted indictment event")]
    public class CalaisIndictment : CalaisCustomTypeBase, ICalaisIndictment
    {
        public string Charge
        {
            get
            {
                return base.Charge;
            }

            set
            {
                base.Charge = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public string OtherCharges
        {
            get
            {
                return base.OtherCharges;
            }

            set
            {
                base.OtherCharges = value;
            }
        }
        public ICalaisPerson Person
        {
            get
            {
                return base.Person;
            }

            set
            {
                base.Person = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/JointVenture")]
    [CalaisTypeDescription("The type of an extracted joint venture event between companies")]
    public class CalaisJointVenture : CalaisCustomTypeBase, ICalaisJointVenture
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public ICalaisCompany Company_NewName
        {
            get
            {
                return base.Company_NewName;
            }

            set
            {
                base.Company_NewName = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/ManMadeDisaster")]
    [CalaisTypeDescription("The type of an extracted mention of a specific man-made disaster")]
    public class CalaisManMadeDisaster : CalaisCustomTypeBase, ICalaisManMadeDisaster
    {
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public ICalaisFacility Facility
        {
            get
            {
                return base.Facility;
            }

            set
            {
                base.Facility = value;
            }
        }
        public ICalaisCustomLocation Location
        {
            get
            {
                return base.Location;
            }

            set
            {
                base.Location = value;
            }
        }
        public string ManmadeDisaster
        {
            get
            {
                return base.ManmadeDisaster;
            }

            set
            {
                base.ManmadeDisaster = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/Merger")]
    [CalaisTypeDescription("The type of an extracted merger event between companies")]
    public class CalaisMerger : CalaisCustomTypeBase, ICalaisMerger
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/MovieRelease")]
    [CalaisTypeDescription("The type of an extracted mention of a movie release")]
    public class CalaisMovieRelease : CalaisCustomTypeBase, ICalaisMovieRelease
    {
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public ICalaisMovie Movie
        {
            get
            {
                return base.Movie;
            }

            set
            {
                base.Movie = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/MusicAlbumRelease")]
    [CalaisTypeDescription("The type of an extracted mention of a music album release")]
    public class CalaisMusicAlbumRelease : CalaisCustomTypeBase, ICalaisMusicAlbumRelease
    {
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public ICalaisMusicAlbum MusicAlbum
        {
            get
            {
                return base.MusicAlbum;
            }

            set
            {
                base.MusicAlbum = value;
            }
        }
        public ICalaisMusicGroup MusicGroup_Performer
        {
            get
            {
                return base.MusicGroup_Performer;
            }

            set
            {
                base.MusicGroup_Performer = value;
            }
        }
        public ICalaisPerson Person_Performer
        {
            get
            {
                return base.Person_Performer;
            }

            set
            {
                base.Person_Performer = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/NaturalDisaster")]
    [CalaisTypeDescription("The type of an extracted mention of a specific natural disaster")]
    public class CalaisNaturalDisaster : CalaisCustomTypeBase, ICalaisNaturalDisaster
    {
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public ICalaisCustomLocation Location
        {
            get
            {
                return base.Location;
            }

            set
            {
                base.Location = value;
            }
        }
        public string NaturalDisaster
        {
            get
            {
                return base.NaturalDisaster;
            }

            set
            {
                base.NaturalDisaster = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/PatentFiling")]
    [CalaisTypeDescription("The type of an extracted mention of patent filing by companies or organizations")]
    public class CalaisPatentFiling : CalaisCustomTypeBase, ICalaisPatentFiling
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public ICalaisOrganization Organization
        {
            get
            {
                return base.Organization;
            }

            set
            {
                base.Organization = value;
            }
        }
        public string PatentDescription
        {
            get
            {
                return base.PatentDescription;
            }

            set
            {
                base.PatentDescription = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/PatentIssuance")]
    [CalaisTypeDescription("The type of an extracted mention of patent issuance granted to companies or organizations")]
    public class CalaisPatentIssuance : CalaisCustomTypeBase, ICalaisPatentIssuance
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public ICalaisOrganization Organization
        {
            get
            {
                return base.Organization;
            }

            set
            {
                base.Organization = value;
            }
        }
        public string PatentDescription
        {
            get
            {
                return base.PatentDescription;
            }

            set
            {
                base.PatentDescription = value;
            }
        }
        public string Patentnumber
        {
            get
            {
                return base.Patentnumber;
            }

            set
            {
                base.Patentnumber = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/PersonAttributes")]
    [CalaisTypeDescription("The type of an extracted personal information, such as age, gender, birthdate and birthplace")]
    public class CalaisPersonAttributes : CalaisCustomTypeBase, ICalaisPersonAttributes
    {
        public string Age
        {
            get
            {
                return base.Age;
            }

            set
            {
                base.Age = value;
            }
        }
        public string BirthDate
        {
            get
            {
                return base.BirthDate;
            }

            set
            {
                base.BirthDate = value;
            }
        }
        public string Birthplace
        {
            get
            {
                return base.Birthplace;
            }

            set
            {
                base.Birthplace = value;
            }
        }
        public string Gender
        {
            get
            {
                return base.Gender;
            }

            set
            {
                base.Gender = value;
            }
        }
        public ICalaisPerson Person
        {
            get
            {
                return base.Person;
            }

            set
            {
                base.Person = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/PersonCareer")]
    [CalaisTypeDescription("The type of an extracted mention of person's position and the associated company, organization or place")]
    public class CalaisPersonCareer : CalaisCustomTypeBase, ICalaisPersonCareer
    {
        public string CareerType
        {
            get
            {
                return base.CareerType;
            }

            set
            {
                base.CareerType = value;
            }
        }
        public ICalaisCity City
        {
            get
            {
                return base.City;
            }

            set
            {
                base.City = value;
            }
        }
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public ICalaisCountry Country
        {
            get
            {
                return base.Country;
            }

            set
            {
                base.Country = value;
            }
        }
        public ICalaisOrganization Organization
        {
            get
            {
                return base.Organization;
            }

            set
            {
                base.Organization = value;
            }
        }
        public ICalaisPerson Person
        {
            get
            {
                return base.Person;
            }

            set
            {
                base.Person = value;
            }
        }
        public ICalaisPosition Position
        {
            get
            {
                return base.Position;
            }

            set
            {
                base.Position = value;
            }
        }
        public ICalaisProvinceOrState ProvinceOrState
        {
            get
            {
                return base.ProvinceOrState;
            }

            set
            {
                base.ProvinceOrState = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/PersonCommunication")]
    [CalaisTypeDescription("The type of an extracted communication (meeting, phone call, etc.) between people or groups of people")]
    public class CalaisPersonCommunication : CalaisCustomTypeBase, ICalaisPersonCommunication
    {
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public ICalaisFacility Facility
        {
            get
            {
                return base.Facility;
            }

            set
            {
                base.Facility = value;
            }
        }
        public ICalaisCustomOrganizationorCompany OrganizationorCompany
        {
            get
            {
                return base.OrganizationorCompany;
            }

            set
            {
                base.OrganizationorCompany = value;
            }
        }
        public ICalaisPerson Person
        {
            get
            {
                return base.Person;
            }

            set
            {
                base.Person = value;
            }
        }
        public string PersonDescription
        {
            get
            {
                return base.PersonDescription;
            }

            set
            {
                base.PersonDescription = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisTypeDescription("Custom composite type for [OrganizationorCompany]")]
    [CalaisType("http://calaisdotnet.codeplex.com/types/CalaisCustomOrganizationorCompany")]
    public class CalaisCustomOrganizationorCompany : ICalaisCustomOrganizationorCompany
    {
        public string Name { get; set; }
        public string Nationality { get; set; }
        public string OrganizationType { get; set; }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/PersonEducation")]
    [CalaisTypeDescription("The type of an extracted mention of person's education and academic degree")]
    public class CalaisPersonEducation : CalaisCustomTypeBase, ICalaisPersonEducation
    {
        public string Certification
        {
            get
            {
                return base.Certification;
            }

            set
            {
                base.Certification = value;
            }
        }
        public string Degree
        {
            get
            {
                return base.Degree;
            }

            set
            {
                base.Degree = value;
            }
        }
        public ICalaisPerson Person
        {
            get
            {
                return base.Person;
            }

            set
            {
                base.Person = value;
            }
        }
        public string SchoolorOrganization
        {
            get
            {
                return base.SchoolorOrganization;
            }

            set
            {
                base.SchoolorOrganization = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/PersonEmailAddress")]
    [CalaisTypeDescription("The tyhpe of an extracted mention of a person's email address")]
    public class CalaisPersonEmailAddress : CalaisCustomTypeBase, ICalaisPersonEmailAddress
    {
        public string Emailaddress
        {
            get
            {
                return base.Emailaddress;
            }

            set
            {
                base.Emailaddress = value;
            }
        }
        public ICalaisPerson Person
        {
            get
            {
                return base.Person;
            }

            set
            {
                base.Person = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/PersonRelation")]
    [CalaisTypeDescription("The type of an extracted mention of various relationships between people, such as Military, Romantic, etc.")]
    public class CalaisPersonRelation : CalaisCustomTypeBase, ICalaisPersonRelation
    {
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public ICalaisPerson Person
        {
            get
            {
                return base.Person;
            }

            set
            {
                base.Person = value;
            }
        }
        public string PersonRelationType
        {
            get
            {
                return base.PersonRelationType;
            }

            set
            {
                base.PersonRelationType = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/PersonTravel")]
    [CalaisTypeDescription("The type of an extracted mention of a person's travel from one place to another")]
    public class CalaisPersonTravel : CalaisCustomTypeBase, ICalaisPersonTravel
    {
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public ICalaisCustomLocationdestination Locationdestination
        {
            get
            {
                return base.Locationdestination;
            }

            set
            {
                base.Locationdestination = value;
            }
        }
        public ICalaisCustomLocationorigin Locationorigin
        {
            get
            {
                return base.Locationorigin;
            }

            set
            {
                base.Locationorigin = value;
            }
        }
        public ICalaisPerson Person
        {
            get
            {
                return base.Person;
            }

            set
            {
                base.Person = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisTypeDescription("Custom composite type for [Locationdestination]")]
    [CalaisType("http://calaisdotnet.codeplex.com/types/CalaisCustomLocationdestination")]
    public class CalaisCustomLocationdestination : ICalaisCustomLocationdestination
    {
        public string Name { get; set; }
    }

    [CalaisTypeDescription("Custom composite type for [Locationorigin]")]
    [CalaisType("http://calaisdotnet.codeplex.com/types/CalaisCustomLocationorigin")]
    public class CalaisCustomLocationorigin : ICalaisCustomLocationorigin
    {
        public string Name { get; set; }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/ProductRecall")]
    [CalaisTypeDescription("The type of an extracted announcement of company recalling its products")]
    public class CalaisProductRecall : CalaisCustomTypeBase, ICalaisProductRecall
    {
        public ICalaisCompany Company_Distributor
        {
            get
            {
                return base.Company_Distributor;
            }

            set
            {
                base.Company_Distributor = value;
            }
        }
        public ICalaisCompany Company_Recalling
        {
            get
            {
                return base.Company_Recalling;
            }

            set
            {
                base.Company_Recalling = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public ICalaisProduct Product
        {
            get
            {
                return base.Product;
            }

            set
            {
                base.Product = value;
            }
        }
        public string ProductType
        {
            get
            {
                return base.ProductType;
            }

            set
            {
                base.ProductType = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/ProductRelease")]
    [CalaisTypeDescription("The type of an extracted announcement of company releasing new products")]
    public class CalaisProductRelease : CalaisCustomTypeBase, ICalaisProductRelease
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public ICalaisProduct Product
        {
            get
            {
                return base.Product;
            }

            set
            {
                base.Product = value;
            }
        }
        public string ProductType
        {
            get
            {
                return base.ProductType;
            }

            set
            {
                base.ProductType = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/Quotation")]
    [CalaisTypeDescription("The type of an extracted quotation and its speaker")]
    public class CalaisQuotation : CalaisCustomTypeBase, ICalaisQuotation
    {
        public ICalaisPerson Person
        {
            get
            {
                return base.Person;
            }

            set
            {
                base.Person = value;
            }
        }
        public string Quote
        {
            get
            {
                return base.Quote;
            }

            set
            {
                base.Quote = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/SecondaryIssuance")]
    [CalaisTypeDescription("The type of an extracted mention of secondary stock issuance")]
    public class CalaisSecondaryIssuance : CalaisCustomTypeBase, ICalaisSecondaryIssuance
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public string Status
        {
            get
            {
                return base.Status;
            }

            set
            {
                base.Status = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/StockSplit")]
    [CalaisTypeDescription("The type of an extracted Stock Split relation mention - stock splits announced by companies")]
    public class CalaisStockSplit : CalaisCustomTypeBase, ICalaisStockSplit
    {
        public ICalaisCompany Company
        {
            get
            {
                return base.Company;
            }

            set
            {
                base.Company = value;
            }
        }
        public string StockSplitRatio
        {
            get
            {
                return base.StockSplitRatio;
            }

            set
            {
                base.StockSplitRatio = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/em/r/Trial")]
    [CalaisTypeDescription("The type of an extracted trial event")]
    public class CalaisTrial : CalaisCustomTypeBase, ICalaisTrial
    {
        public string Charge
        {
            get
            {
                return base.Charge;
            }

            set
            {
                base.Charge = value;
            }
        }
        public string Date
        {
            get
            {
                return base.Date;
            }

            set
            {
                base.Date = value;
            }
        }
        public string DateString
        {
            get
            {
                return base.DateString;
            }

            set
            {
                base.DateString = value;
            }
        }
        public string OtherCharges
        {
            get
            {
                return base.OtherCharges;
            }

            set
            {
                base.OtherCharges = value;
            }
        }
        public ICalaisPerson Person
        {
            get
            {
                return base.Person;
            }

            set
            {
                base.Person = value;
            }
        }
    }

    [CalaisType("http://s.opencalais.com/1/type/er/Company")]
    [CalaisTypeDescription("The type of a disambiguated company name")]
    public class CalaisCompanyDisambiguated : ICalaisCompanyDisambiguated
    {
        public ICalaisDocInfo DocId { get; set; }
        public string Name { get; set; }
        public string Score { get; set; }
        public ICalaisCustomSubject Subject { get; set; }
        public string Ticker { get; set; }
    }

    [CalaisTypeDescription("Custom composite type for [Subject]")]
    [CalaisType("http://calaisdotnet.codeplex.com/types/CalaisCustomSubject")]
    public class CalaisCustomSubject : ICalaisCustomSubject
    {
        public string Name { get; set; }
        public string Nationality { get; set; }
        public string OrganizationType { get; set; }
        public string PersonType { get; set; }
        public string ProductType { get; set; }
        public ICalaisCompany Company_Acquirer { get; set; }
        public ICalaisCompany Company_Beingacquired { get; set; }
        public string Date { get; set; }
        public string DateString { get; set; }
        public string Status { get; set; }
        public ICalaisCompany Company { get; set; }
        public ICalaisCompany Company_Rated { get; set; }
        public ICalaisCompany Company_Source { get; set; }
        public string FinancialMetric { get; set; }
        public ICalaisPerson Person_Source { get; set; }
        public string Quarter { get; set; }
        public string Year { get; set; }
        public string FinancialTrend { get; set; }
        public string Price_New { get; set; }
        public string Price_Old { get; set; }
        public string Rank_New { get; set; }
        public string Rank_Old { get; set; }
        public string Charge { get; set; }
        public string OtherCharges { get; set; }
        public ICalaisPerson Person { get; set; }
        public string BonusSharesRatio { get; set; }
        public string BusinessRelationType { get; set; }
        public string AffiliateRelationType { get; set; }
        public ICalaisCompany Company_Affiliate { get; set; }
        public ICalaisCompany Company_Parent { get; set; }
        public ICalaisCompany Company_Customer { get; set; }
        public ICalaisCompany Company_ProvIder { get; set; }
        public ICalaisOrganization Organization_Customer { get; set; }
        public string Employeesnumber { get; set; }
        public ICalaisCustomLocation Location { get; set; }
        public string Unit { get; set; }
        public string ExpansionType { get; set; }
        public ICalaisCompany Company_Investor { get; set; }
        public ICalaisCompany Company_Plaintiff { get; set; }
        public ICalaisCompany Company_Sued { get; set; }
        public string LawsuitClass { get; set; }
        public ICalaisPerson Person_Plaintiff { get; set; }
        public string SuedDescription { get; set; }
        public ICalaisCity City { get; set; }
        public string CompanyLocationType { get; set; }
        public ICalaisCountry Country { get; set; }
        public ICalaisProvinceOrState ProvinceOrState { get; set; }
        public string CompanyMeetingType { get; set; }
        public ICalaisFacility Facility { get; set; }
        public ICalaisCompany Company_FormerName { get; set; }
        public ICalaisCompany Company_NewName { get; set; }
        public string StockExchange { get; set; }
        public string Ticker { get; set; }
        public ICalaisProduct Product { get; set; }
        public ICalaisTechnology Technology { get; set; }
        public string ConferencecallType { get; set; }
        public ICalaisOrganization Organization_Rated { get; set; }
        public string ChangeType { get; set; }
        public ICalaisOrganization Organization { get; set; }
        public ICalaisPosition Position { get; set; }
        public ICalaisPerson Person_Employee { get; set; }
        public ICalaisPerson Person_Employer { get; set; }
        public string Environmentalissue { get; set; }
        public string Species { get; set; }
        public string Fdastage { get; set; }
        public string FamilyRelationType { get; set; }
        public ICalaisPerson Person_Relative { get; set; }
        public ICalaisCustomRelationObject RelationObject { get; set; }
        public ICalaisCustomRelationSubject RelationSubject { get; set; }
        public string Verb { get; set; }
        public string ManmadeDisaster { get; set; }
        public ICalaisMovie Movie { get; set; }
        public ICalaisMusicAlbum MusicAlbum { get; set; }
        public ICalaisMusicGroup MusicGroup_Performer { get; set; }
        public ICalaisPerson Person_Performer { get; set; }
        public string NaturalDisaster { get; set; }
        public string PatentDescription { get; set; }
        public string Patentnumber { get; set; }
        public string Age { get; set; }
        public string BirthDate { get; set; }
        public string Birthplace { get; set; }
        public string Gender { get; set; }
        public string CareerType { get; set; }
        public ICalaisCustomOrganizationorCompany OrganizationorCompany { get; set; }
        public string PersonDescription { get; set; }
        public string Certification { get; set; }
        public string Degree { get; set; }
        public string SchoolorOrganization { get; set; }
        public string Emailaddress { get; set; }
        public string PersonRelationType { get; set; }
        public ICalaisCustomLocationdestination Locationdestination { get; set; }
        public ICalaisCustomLocationorigin Locationorigin { get; set; }
        public ICalaisCompany Company_Distributor { get; set; }
        public ICalaisCompany Company_Recalling { get; set; }
        public string Quote { get; set; }
        public string StockSplitRatio { get; set; }
    }

    [CalaisType("http://s.opencalais.com/1/type/er/Geo/City")]
    [CalaisTypeDescription("The type of a disambiguated city name")]
    public class CalaisCityDisambiguated : ICalaisCityDisambiguated
    {
        public string ContainedByCountry { get; set; }
        public string ContainedByState { get; set; }
        public ICalaisDocInfo DocId { get; set; }
        public string Latitude { get; set; }
        public string Longitude { get; set; }
        public string Name { get; set; }
        public string ShortName { get; set; }
        public ICalaisCustomSubject Subject { get; set; }
    }

    [CalaisType("http://s.opencalais.com/1/type/er/Geo/Country")]
    [CalaisTypeDescription("The type of a disambiguated country name")]
    public class CalaisCountryDisambiguated : ICalaisCountryDisambiguated
    {
        public string ContainedByCountry { get; set; }
        public ICalaisDocInfo DocId { get; set; }
        public string Latitude { get; set; }
        public string Longitude { get; set; }
        public string Name { get; set; }
        public string ShortName { get; set; }
        public ICalaisCustomSubject Subject { get; set; }
    }

    [CalaisType("http://s.opencalais.com/1/type/er/Geo/ProvinceOrState")]
    [CalaisTypeDescription("The type of a disambiguated province/state name")]
    public class CalaisProvinceOrStateDisambiguated : ICalaisProvinceOrStateDisambiguated
    {
        public string ContainedByCountry { get; set; }
        public string ContainedByState { get; set; }
        public ICalaisDocInfo DocId { get; set; }
        public string Latitude { get; set; }
        public string Longitude { get; set; }
        public string Name { get; set; }
        public string ShortName { get; set; }
        public ICalaisCustomSubject Subject { get; set; }
    }

    [CalaisType("http://s.opencalais.com/1/type/er/Product/Electronics")]
    [CalaisTypeDescription("The type of a disambiguated product name of type Electronics")]
    public class CalaisElectronicsDisambiguated : ICalaisElectronicsDisambiguated
    {
        public ICalaisDocInfo DocId { get; set; }
        public string Name { get; set; }
        public string Score { get; set; }
        public ICalaisCustomSubject Subject { get; set; }
    }

    [CalaisType("http://s.opencalais.com/1/type/lid/DefaultLangId")]
    [CalaisTypeDescription("The type of the identified language for the current document")]
    public class CalaisDefaultLangId : ICalaisDefaultLangId
    {
        public ICalaisDocInfo DocId { get; set; }
        public string Lang { get; set; }
    }

    [CalaisType("http://s.opencalais.com/1/type/sys/DocInfoMeta")]
    [CalaisTypeDescription("The type of the node that presents meta-info generated by Calais")]
    public class CalaisDocInfoMeta : ICalaisDocInfoMeta
    {
        public string ContentType { get; set; }
        public ICalaisDocInfo DocId { get; set; }
        public string Emver { get; set; }
        public string LangIdver { get; set; }
        public string Language { get; set; }
        public ICalaisMessage Message { get; set; }
        public string Processingver { get; set; }
        public string Signature { get; set; }
        public string SubmissionDate { get; set; }
        public string Submittercode { get; set; }
    }

    [CalaisType("http://s.opencalais.com/1/type/sys/Message")]
    [CalaisTypeDescription("The type of the node that contains error messages")]
    public class CalaisMessage : ICalaisMessage
    {
        public string Messagecode { get; set; }
        public string Text { get; set; }
    }

    [CalaisType("http://s.opencalais.com/1/type/sys/InstanceInfo")]
    [CalaisTypeDescription("The type of the node that presents details about individual instances of Calais types")]
    public class CalaisInstanceInfo : ICalaisInstanceInfo
    {
        public string Detection { get; set; }
        public ICalaisDocInfo DocId { get; set; }
        public string Exact { get; set; }
        public string Length { get; set; }
        public string Offset { get; set; }
        public string Prefix { get; set; }
        public ICalaisCustomSubject Subject { get; set; }
        public string Suffix { get; set; }
    }

    [CalaisType("http://s.opencalais.com/1/type/sys/RelevanceInfo")]
    [CalaisTypeDescription("The type of the node that presents information about relevance ranking assiged to Calais entities")]
    public class CalaisRelevanceInfo : ICalaisRelevanceInfo
    {
        public ICalaisDocInfo DocId { get; set; }
        public string Relevance { get; set; }
        public ICalaisCustomSubject Subject { get; set; }
    }

    public class CalaisCustomTypeBase : ICalaisCustomLocation, ICalaisCustomRelationObject, ICalaisCustomRelationSubject, ICalaisCustomOrganizationorCompany, ICalaisCustomLocationdestination, ICalaisCustomLocationorigin, ICalaisCustomSubject
    {
        public string Name { get; set; }
        public string Nationality { get; set; }
        public string OrganizationType { get; set; }
        public string PersonType { get; set; }
        public string ProductType { get; set; }
        public ICalaisCompany Company_Acquirer { get; set; }
        public ICalaisCompany Company_Beingacquired { get; set; }
        public string Date { get; set; }
        public string DateString { get; set; }
        public string Status { get; set; }
        public ICalaisCompany Company { get; set; }
        public ICalaisCompany Company_Rated { get; set; }
        public ICalaisCompany Company_Source { get; set; }
        public string FinancialMetric { get; set; }
        public ICalaisPerson Person_Source { get; set; }
        public string Quarter { get; set; }
        public string Year { get; set; }
        public string FinancialTrend { get; set; }
        public string Price_New { get; set; }
        public string Price_Old { get; set; }
        public string Rank_New { get; set; }
        public string Rank_Old { get; set; }
        public string Charge { get; set; }
        public string OtherCharges { get; set; }
        public ICalaisPerson Person { get; set; }
        public string BonusSharesRatio { get; set; }
        public string BusinessRelationType { get; set; }
        public string AffiliateRelationType { get; set; }
        public ICalaisCompany Company_Affiliate { get; set; }
        public ICalaisCompany Company_Parent { get; set; }
        public ICalaisCompany Company_Customer { get; set; }
        public ICalaisCompany Company_ProvIder { get; set; }
        public ICalaisOrganization Organization_Customer { get; set; }
        public string Employeesnumber { get; set; }
        public ICalaisCustomLocation Location { get; set; }
        public string Unit { get; set; }
        public string ExpansionType { get; set; }
        public ICalaisCompany Company_Investor { get; set; }
        public ICalaisCompany Company_Plaintiff { get; set; }
        public ICalaisCompany Company_Sued { get; set; }
        public string LawsuitClass { get; set; }
        public ICalaisPerson Person_Plaintiff { get; set; }
        public string SuedDescription { get; set; }
        public ICalaisCity City { get; set; }
        public string CompanyLocationType { get; set; }
        public ICalaisCountry Country { get; set; }
        public ICalaisProvinceOrState ProvinceOrState { get; set; }
        public string CompanyMeetingType { get; set; }
        public ICalaisFacility Facility { get; set; }
        public ICalaisCompany Company_FormerName { get; set; }
        public ICalaisCompany Company_NewName { get; set; }
        public string StockExchange { get; set; }
        public string Ticker { get; set; }
        public ICalaisProduct Product { get; set; }
        public ICalaisTechnology Technology { get; set; }
        public string ConferencecallType { get; set; }
        public ICalaisOrganization Organization_Rated { get; set; }
        public string ChangeType { get; set; }
        public ICalaisOrganization Organization { get; set; }
        public ICalaisPosition Position { get; set; }
        public ICalaisPerson Person_Employee { get; set; }
        public ICalaisPerson Person_Employer { get; set; }
        public string Environmentalissue { get; set; }
        public string Species { get; set; }
        public string Fdastage { get; set; }
        public string FamilyRelationType { get; set; }
        public ICalaisPerson Person_Relative { get; set; }
        public ICalaisCustomRelationObject RelationObject { get; set; }
        public ICalaisCustomRelationSubject RelationSubject { get; set; }
        public string Verb { get; set; }
        public string ManmadeDisaster { get; set; }
        public ICalaisMovie Movie { get; set; }
        public ICalaisMusicAlbum MusicAlbum { get; set; }
        public ICalaisMusicGroup MusicGroup_Performer { get; set; }
        public ICalaisPerson Person_Performer { get; set; }
        public string NaturalDisaster { get; set; }
        public string PatentDescription { get; set; }
        public string Patentnumber { get; set; }
        public string Age { get; set; }
        public string BirthDate { get; set; }
        public string Birthplace { get; set; }
        public string Gender { get; set; }
        public string CareerType { get; set; }
        public ICalaisCustomOrganizationorCompany OrganizationorCompany { get; set; }
        public string PersonDescription { get; set; }
        public string Certification { get; set; }
        public string Degree { get; set; }
        public string SchoolorOrganization { get; set; }
        public string Emailaddress { get; set; }
        public string PersonRelationType { get; set; }
        public ICalaisCustomLocationdestination Locationdestination { get; set; }
        public ICalaisCustomLocationorigin Locationorigin { get; set; }
        public ICalaisCompany Company_Distributor { get; set; }
        public ICalaisCompany Company_Recalling { get; set; }
        public string Quote { get; set; }
        public string StockSplitRatio { get; set; }
    }

}
